home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1995 December: Technology Seed / Mac Tech Seed Dec '95 / Mac Tech Seed Dec '95.toast / Open Transport 1.1b9 / Open Transport SDK / Open Tpt Release Notes next >
Encoding:
Text File  |  1995-11-22  |  29.6 KB  |  547 lines  |  [TEXT/ttxt]

  1.  
  2.         Open Transport Client Release Notes
  3.  
  4.             Revision 1.1b8
  5.             11/09/95
  6.  
  7.  
  8. Comments should be sent to AppleLink address OPENTPT or Internet address 'opentpt@applelink.apple.com' Unfortunately, we can not provide general technical support via this AppleLink address.  Technical support questions should be directed to AppleLink address DEVSUPPORT or Internet address 'devsupport@applelink.apple.com'.
  9.  
  10.  
  11. Overview
  12.  
  13. This is a development release of Open Transport for AppleTalk and TCP/IP.
  14.  
  15. This release includes an AppleTalk Phase 2 stack containing PAP, ADSP, ATP, DDP and below. It includes a TCP/IP stack containing TCP, UDP, IP and a DNR. More information on the particular capabilities of these two stacks are contained in documentation specific to AppleTalk or TCP/IP (see below).
  16.  
  17. What this release contains
  18.  
  19. This release includes  
  20. • an Installer that will install Open Transport 1.1b8 and Apple Shared Library Manager 2.0 onto your machine. 
  21.  
  22. • a Developer Files folder that contains:
  23.  
  24. •    An ASLM Developer folder contain tools for developing ASLM shared libraries, as well as debugging versions of the Shared Library Manager itself.
  25.  
  26. •    An Open Tpt Client Developer folder that contains documents, header files,  MPW libraries, and sample programs
  27.  
  28. WARNINGS
  29.  
  30. See also the ReadMe file that accompanies Open Transport
  31.  
  32. • If you have installed the debug version of OpenTransport on a NuBus Power Macintosh, you will ALWAYS get 2 UserBreaks when booting your machine.  The first UserBreak will have no text associated with it, while the second will have the text "TLibrary::PrivateLoadSegment- Loading a Segment failed".  Please do not report these as bugs.
  33.  
  34.  
  35. Development Information
  36.  
  37. This developer kit was created using the pre-release MPW environment from E.T.O. #18
  38.  
  39. IMPORTANT DEVELOPER WARNING!!!
  40.  
  41. The 68K libraries for version 1.1b1 through 1.1b5 were incompatible with the libraries from the 1.0.6/1.0.7  Open Transport releases.  Because some developers have released 68K products with the libraries of these releases, it has been decided that we should modify the 1.1 68K libraries to insure compatibility with the those libraries.  Because of this, any 68K code linked with the 1.1b1 through 1.1b5 libraries will not be compatible with the final 1.1 Open Transport product.  The libraries with the 1.1b6 release are compatible with the library from the 1.0.6/1.0.7  Open Transport releases, and will be compatible with the final 1.1 Open Transport product.
  42.  
  43. Linking with Open Transport Libraries:
  44.  
  45. For 68K Libraries:
  46.  
  47. You should link with OpenTptUtils.o (for model far) or OpenTptUtils.n.o (for model near) if you are writing code that is only dealing with ports.  Linking with this file keeps the whole Open Transport environment from loading.
  48.  
  49. If you're not sure, try linking with this file.  If you get unresolved symbols, then link with OpenTransport.o.
  50.  
  51. If you are writing an application, also link with OpenTransportApp.o (for model far) or OpenTransportApp.n.o (for model near). If you are writing a stand-alone code resource, CFM fragment, or ASLM shared library, also link with OpenTransportExtn.o (for model far) or OpenTransportExtn.n.o (for model near).
  52.  
  53. You should link with OpenTransport.o (for model far) or OpenTransport.n.o (for model near) if you are writing code that creates and uses endpoints, mappers or other providers.  If you are writing an application, also link with  OpenTransportApp.o (for model far) or OpenTransportApp.n.o (for model near). If you are writing a stand-alone code resource, CFM fragment, or ASLM shared library, also link with OpenTransportExtn.o (for model far) or OpenTransportExtn.n.o (for model near).
  54.  
  55. You should link with OpenTptATalk.o (for model far) or OpenTptATalk.n.o (for model near) if you are writing code that uses the AppleTalkServices provider.
  56.  
  57. You should link with OpenTptInet.o (for model far) or OpenTptInet.n.o (for model near) if you are writing code that uses the InternetServices provider.
  58.  
  59. In all cases, if you are NOT writing an appliction, but are writing a stand-alone code resource, CFM fragment, or ASLM shared library, also link with OpenTransportApp.o (for model far) or OpenTransportExtn.n.o (for model near).
  60.  
  61. If you are writing code that uses ASLM, then you should link with the ASLM libraries first, then the Open Transport libraries, ignoring any duplicate symbol definitions that occur between them.
  62.  
  63. For PPC Libraries:
  64.  
  65.  
  66. You should link with OpenTransportUtilLib and OpenTptUtilsPPC.o if you are writing code that is only dealing with ports.
  67. Linking with this file keeps the whole Open Transport environment from loading.  If you're not sure, try linking with this file.
  68. If you get unresolved symbols, then link with OpenTransportLib and OpenTransportPPC.o.
  69.  
  70. If you are writing an application, also link with OpenTptUtilsAppPPC.o. If you are writing a stand-alone code resource, CFM fragment, or ASLM shared library, link with OpenTptUtilsExtnPPC.o instead of OpenTptUtilsAppPPC.o.
  71.  
  72. You should link with OpenTransportLib and OpenTransportPPC.o if you are writing code that creates and uses endpoints, mappers,  or other providers.
  73. If you are writing an application, also link with OpenTransportAppPPC.o. If you are writing a stand-alone code resource, CFM fragment, or ASLM shared library, link with OpenTransportExtnPPC.o instead of OpenTransportAppPPC.o.
  74.  
  75. You should link with OpenTptATalkPPC.o and OpenTptAppleTalkLib if you are writing code that uses the AppleTalkServices provider, or AppleTalk utility routines
  76.  
  77. You should link with OpenTptInetPPC.o and OpenTptInternetLib if you are writing code that uses the InternetServices provider, or TCP/IP utility routines.
  78.  
  79. If you are writing code that uses ASLM, then you should link with the ASLM libraries first, then the Open Transport libraries, ignoring any duplicate symbol definitions that occur between them.
  80.  
  81. Known bugs/incompatibilities
  82.  
  83. • The settings "Load only when needed" has been disabled for AppleTalk.  It is not technically feasible at this time.
  84.  
  85. • OTScheduleDeferredTask only runs tasks when the Open Transport environment is about to become quiescent.  This causes clients using it not to run very often. 
  86.  
  87. • When using MacPPP, please delete all unused version of the Control Panel (ConfigPPP), extension (PPP), and preferences.  Opening ConfigPPP may crash your system if it finds inappropriate PPP resources.
  88.  
  89. • When running TCP/IP over a SLIP or PPP link only, it is recommended that you leave the "Router address" and "Subnet mask" fields blank in the TCP/IP Control Panel.  Since the values assigned to these by some Internet providers may in some circumstances be incompatible with Open Transport TCP/IP, Open Transport will automatically generate a default router address and subnet mask when using either a SLIP or a PPP Link if you leave these fields blank.
  90.  
  91. API changes since 1.1b6
  92.  
  93. • The CAN_xxxxxx equates were renamed to T_CAN_xxxxxxx to keep them in the Open Transport namespace.
  94.  
  95. Bug Fixes since 1.1b6
  96.  
  97. General
  98.  
  99. • Fixed a problem with fragmenting sends when AckSends was being used on an endpoint.
  100.  
  101. • Fixed a problem on PowerPC where we could swap our stack at an inappropriate time and crash the machine.
  102.  
  103. • Fixed a problem on 68K machines where the A2 register could get "trashed" whenever we obtained a timestamp.  This caused Open Transport to be especially unreliable on System 7.1 machines.
  104.  
  105. • Fixed the OTGetProviderPortRef API so that it returned the correct value instead of 0.
  106.  
  107. • Problems with the OTCreateOptionString and OTCreateOptions processing where the option was a printable string or an octet wtring were fixed.
  108.  
  109. • The autopush APIs were moved into OpenTransport.h and documented to some extent in the Open Transport Client Notes.
  110.  
  111. Backward-compatibility for AppleTalk
  112.  
  113. • Multinode deliver now gets the correct destination node number set so that they can tell if the packet was a broadcast or not.
  114.  
  115. • NBP lookups now return the actual enumerator value that was on the wire instead of a "made-up" value by our backward-compatibility shim.
  116.  
  117. • The KillNBP call for a Register name now works correctly.
  118.  
  119. • Fixed a hang that sometimes occurred when adding a multinode  listener.
  120.  
  121. • Always zero the checksum before handing a packet to clients - Open Transport DDP already checked it - there's no point to the client checking it again.
  122.  
  123. • Fixed a problem where the OneZone and Extended bits for the GetAppleTalkInfo() call were not being updated if the link was changed.
  124.  
  125. • Fixed a problem where, on PowerPC machines, adding a multinode listener usually failed.
  126.  
  127. AppleTalk
  128.  
  129. • ADSP now properly re-initializes its connection variables after a connection is broken, allowing the endpoint to be reused with another connection.
  130.  
  131. • DDP now sets the T_CAN_RESOLVE_ADDR bit in it's flag so that the ResolveAddress call to DDP will work.
  132.  
  133. • Fixed a crash if opening AppleTalk did not work because of address conflicts.
  134.  
  135. • The answer returned for the TSDU size of ADSP will no correctly reflect whether OPT_ENABLEEOM has been used or not.
  136.  
  137. • Fixed the router-down notification so that it now occurs properly.
  138.  
  139. Backward-compatibility for TCP/IP
  140.  
  141. • Fixed a small window when completing a DNS query where we could restore the wrong global world before doing a callback to the client.
  142.  
  143. TCP/IP
  144.  
  145. • Cleaned up the load/unload code in TCP/IP. 
  146.  
  147. • Fixed some potential problems in the DHCP lease renew and release logic
  148.  
  149. Links
  150.  
  151. • Fixed a problem with the serial endpoints where a timer could fire and crash the machine after the endpoints were closed.
  152.  
  153. Changes since 1.1b6
  154.  
  155. General
  156.  
  157. • When sending a message down a stream, check for flow control first, rather than allocating all the appropriate messages, then discovering that flow control is on, and having to free the messages. This will result in better performance in high-flow situations.
  158.  
  159. • The size of the stack that Open Transport swaps to was increased on both 68K and PPC.
  160.  
  161. • When Open Transport is installed on machines that do not support it, "Classic" AppleTalk will be run instead.
  162.  
  163. • The 'otvr' gestalt selector no longer crashes the machine.
  164.  
  165. Backward-compatibility for AppleTalk
  166.  
  167.  
  168. Backward-compatibility for TCP/IP
  169.  
  170. • Many changes were made in this area to alleviate race conditions that were occuring.  All operations are now synchronized through a single global queue.
  171.  
  172.  
  173. TCP/IP
  174.  
  175.  
  176. AppleTalk
  177.  
  178.  
  179. Links
  180.  
  181.  
  182. Other notes about this build.
  183.  
  184. ASLM 2.0
  185.  
  186. This build installs ASLM 2.0.  If you currently have a debugging version of ASLM installed, installing the non-debug version of Open Transport will replace your debug version of ASLM with the non-debug version..
  187.  
  188.  
  189. Macsbug messages
  190.  
  191. If you install the debug version of OpenTransport, there are many internal debugger breaks. You must have macsbug installed, or else if a debugger break occurs, you'll get the "bomb" box. 
  192.  
  193. The Installer installs various Macsbug templates and DCMD's into your Debugger Prefs file. If you have Macsbug on the target machine, an Easy Install will automatically update the Debugger Prefs file. If you're using a newer Macsbug (6.5) which doesn't come with a Debugger Prefs file, the Installer will create a Debugger Prefs file.
  194.  
  195. There is mostly a pattern to the debugger messages that appear. Most messages have a leading 2-character code. The meanings are: 
  196.  
  197. NB Nonfatal error. Dump all the registers and do a stack crawl and include the results in a bug report along with what you were doing at the time. Hit 'g' in Macsbug to continue.  The machine should not crash, but it might hang.
  198.  
  199. FX Fatal error.  An error that is probably fatal to the machine, but is cause by an external component, and not Open Transport itself.
  200.  
  201. NX Nonfatal error.  An error occurred caused by an external component, and not Open Transport itself.  Hit 'g' in Macsbug to continue.  The machine should not crash, but it might hang.
  202.  
  203. UF User fatal err.  A client of Open Transport did something wrong that is probably fatal.  Reboot the machine.
  204.  
  205. UE User nonfatal error.   A client of Open Transport did something wrong.  Hit 'g' in Macsbug to continue.  The machine should not crash or hang.
  206.  
  207. IE Informative error.  An error occurred that should rarely happen.  Hit 'g' in Macsbug to continue.  The machine should not crash or hang.
  208.  
  209. IN Informative break.  This is just an informational break.  Hit 'g' in Macsbug to continue.  The machine should not crash or hang.
  210.  
  211. Documentation
  212.  
  213. There is a "Document" folder which contains more documentation:
  214.  
  215. • Open Transport Client Note - A reference document for programmers wishing to write software using the Open Transport APIs.
  216. • Open Tpt AppleTalk Dev Note - Material specific to AppleTalk.
  217. • Open Tpt  Serial Dev Note - Material specific to Serial endpoints.
  218. • Open Tpt TCP/IP Dev Note - Material specific to TCP/IP.
  219.  
  220. All of these are preliminary. All of these will be worked over and turned into Apple DocViewer format documents for the final release of Open Transport 1.1.
  221.  
  222. The installer
  223.  
  224. The installer will Easy Install the Apple Shared Library Manager and Open Transport AppleTalk and TCP/IP version 1.0, as well as AppleTalk  and MacTCP compatibility..
  225. You can “undo” the AppleTalk compatibility installation by using the Network Software Installer 1.4.2 or later, and custom installing AppleTalk for System 7, Ignore any warnings it might give you about installing over a ‘newer’ AppleTalk.
  226. This release also includes a version of MacTCP 3.0.  To remove it, remove the TCP/IP Control Panel and reinstall the MacTCP control panel.
  227.  
  228. Debugger support
  229.  
  230. The installer will install Open Transport Debugger preferences into the DebuggerPrefs file in your System Folder, if you have one. These debugger prefs contain the ASLM debugger prefs plus Macsbug templates for virtually all structures used in the API. A Macbug dcmd is installed also that can display strings for error messages. For example, typing “OTErr -3158” will tell you what error number -3158 is.
  231.  
  232. Sample Code
  233.  
  234. There is a "Samples" folder which contains sample programs and source files.
  235.  
  236. All of the client samples are now Metrowerks projects (built with the Metrowerks IDE 1.3).
  237.  
  238. Earlier Release Notes
  239.  
  240. API changes since 1.0.5b3
  241.  
  242. • Added a generic DNR Query API for TCP/IP.
  243.  
  244. • Added the OTGetProviderPortRef API
  245.  
  246. • Added the OTTransferProviderOwnership API
  247.  
  248. • An 'otvr' Gestalt selector was added that returns the version of Open Transport in the standard 4-byte 'vers'-1 format.
  249.  
  250. • OPT_SRL_xxxxxx names for serial options were changed to OPT_SERIAL_xxxxxx
  251.  
  252. • kOTInvalidConfigurationPtr and kOTNoMemoryConfigurationPtr defines were added.
  253.  
  254. • Fixed the prototype for OTATomicAdd32 for 68K code - it was prototyped to return a Boolean, and it should have been an SInt32.
  255.  
  256. Bug Fixes since 1.0.5b3
  257.  
  258. General
  259.  
  260. • Under certain conditions, T_GODATA and T_GOEXDATA events were received and cleared by Open Transport.  This resulted in a kOTLookErr being returned to the client, but the events were already cleared.
  261.  
  262. • Synchronous Listen() calls no longer hang.
  263.  
  264. • Fixed a problem where 0-length receive calls lost the rest of the data
  265.  
  266. • Metrowerks sample projects now have their resources intact, so they should be usable now.
  267.  
  268. • Fixed a problem where callbacks to registered 68K clients did not have their A5 world set up.
  269.  
  270. • On PowerPC, Open Transport now swaps the stack when calling routines that might "blow up" the foreground applications stack.
  271.  
  272. • Fixed some problems with OTCreateOptionString when the option was a kOTPrintableString.
  273.  
  274. • Fixed a write to NULL that occurred when loading a driver for the first time. 
  275.  
  276. • Fixed a bug in the various time stamp routines, where the timestamp returned on 603 and 604 processors was incorrect (OK, the lower 40 bits were correct, but the upper 24 were not).
  277.  
  278. • The routine OTTransferOwnershipPriv was exported to keep the Metrowerks linker happy.
  279.  
  280. Backward-compatibility for AppleTalk
  281.  
  282. • If a port is locked in the AppleTalk control panel, AppleTalk compatibility will not automatically switch to LocalTalk if the port does not exist or if it's driver cannot be initialized.  Instead, AppleTalk will remain Off.  A notification was added to inform the user that this has occurred.
  283.  
  284. • Fixed a crash at Shutdown or Restart if the shutdown or restart was done and a packet arrived from the network at an inconvenient time (most often if a file server was still mounted).
  285.  
  286. • Fixed a memory leak whenever opening a DDP socket failed.
  287.  
  288. • On NBP Lookups, the enumerator value is now the correct enumerator value, instead of a value made up by the backward-compatibility code.  This allows some network management programs to function better.
  289.  
  290.  
  291. AppleTalk
  292.  
  293. • May bugs were fixed in the PAP implementation.  It still needs some work, but it can now print properly to Apple Laserwriters.
  294.  
  295. • Fixed a problem in PAP where the OPT_SERVER_STATUS option was returning garbage if the endpoint was not a "listening" endpoint.
  296.  
  297.  
  298. Backward-compatibility for TCP/IP
  299.  
  300. • Fixed a problem where accepting an incoming connection could result in a crash if an error occurred.
  301.  
  302. • Fixed a problem with Fetch crashing when putting a Text file.
  303.  
  304. TCP/IP
  305.  
  306. • Fixed a problem where passing a dot-format IP address to SysInfo or MXInfo would hang the system
  307.  
  308. Links
  309.  
  310.  
  311. Changes since 1.0.5b3
  312.  
  313. General
  314.  
  315. • OTDestroyDeferredTask will no longer return a kEAGAINErr.  It always succeeds.
  316.  
  317. • The OTGetTimeStamp function has been made native on PowerPC.  It no longer uses the Microseconds trap.
  318.  
  319. • Open Transport now installs the latest version of "classic" AppleTalk, so that if it is run on a machine that does not support Open Transport, "classic" AppleTalk will run instead.  Using "remove" in the installer will now allow "classic" AppleTalk to run.
  320.  
  321. Backward-compatibility for AppleTalk
  322.  
  323. • MPP will no longer change a 0 network number to be "my" network number.
  324.  
  325. • Portions of MPP compatibility were made native in PowerPC.
  326.  
  327. • At boot time, AppleTalk now reads the preference file to determine if AppleTalk is ON or OFF, and overrides the value stored in parameter RAM.
  328.  
  329. Backward-compatibility for TCP/IP
  330.  
  331. • The .IPP driver will not force TCP/IP to load if a client makes the GetMyIPAddr() call.
  332.  
  333. • FreePPP has been added as a supported MDEV.
  334.  
  335. TCP/IP
  336.  
  337. • TCP/IP now supports hanging up and redialing SLIP and PPP connections without rebooting the machine.
  338.  
  339. AppleTalk
  340.  
  341. • Support was added for the XTI_SNDBUF, XTI_RCVBUF, XTI_SNDLOWAT and XTI_RCVLOWAT generic XTI options
  342.  
  343. • DDP will no longer change a 0 network number to "my" network number.
  344.  
  345. • On non-extended networks, if no router is present, change all network numbers to 0 before sending them.
  346.  
  347. • The NBP retry/interval algorithm was redone to allow a few more retries than previous versions.
  348.  
  349. Links
  350.  
  351.  
  352. API changes since 1.0.5b2
  353.  
  354. • Many new utility APIs were moved into OpenTransport.h.  These APIs are not strictly necessary to use Open Transport.  They are utilities that are used by the implementation of Open Transport that you might find useful.
  355.  
  356. • Routines to directly manipulate streams were added to OpenTransport.h.  These APIs do not have (and will never have) mixed-mode glue.  They many only be used by native code, so applications that use these APIs should be FAT.  The Open Tpt Client Deverloper note has NOT been updated yet with all of these APIs.
  357.  
  358. • Pascal header files are in better shape.  They do not reflect any of the new native-only APIs.
  359.  
  360. • Some new APIs have been added to the InternetServices object to handle obtaining direct access to DNS records (see the OpenTptInternet.h header files).  Documentation will be added to the Open Tpt TCP Dev. Note shortly.
  361.  
  362. • OTGetProviderPort was added to get the OTPortRef associated with a provider, if applicable.
  363.  
  364. • The APIs to the OTCompareAndSwap8, etc..  functions were changed to take a UInt32 so that the API works properly with Symantec and Metrowerks compilers.
  365.  
  366. • A new event, kOTNewPortRegistered, is now sent to clients who have register with Open Transport using the OTRegisterAsClient API.  It is sent whenever a new port driver is registered with Open Transport.
  367.  
  368. • The no-copy receive API was made public - it consists of the constant kOTNetbufIsOTBufferStar, the OTBuffer and OTBufferInfo structures, and the OTReadBuffer and OTReleaseBuffer APIs.  This API set will also work under Copland as a no-copy receive.  
  369.  
  370.  
  371. Bug Fixes since 1.0.5b2
  372.  
  373. General
  374.  
  375. • Fixed the timer APIs on PowerPC machines.  These were not working correctly.
  376.  
  377. • When swapping stacks, the _StackSpace trap is now patched to correctly return the amount of remaining stack space.  This fixes problems with a hang on the 660AV and 840AV machines when using ethernet.
  378.  
  379. • For transaction endpoints, T_REQUEST events could get lost while reading replies.
  380.  
  381. • Open Transport was not detecting callbacks from ADEVs, MDEVS, or the .DRVR shim at VBL time, causing problems with STREAM synchronization. 
  382.  
  383. • Some race conditions were found under heavy stress in the endpoint APIs.  
  384.  
  385. • Fixed a problem with "child" ports in the OTPortRecord.  "Child" ports are now correctly returned.
  386.  
  387. • Added #pragma pointers_in_D0 for Metrowerks users in a few places where they were missed.
  388.  
  389. • According to the XTI specification, T_GODATA and T_GOEXDATA events are supposed to be higher priority than all the other events.  Open Transport was modified to conform.
  390.  
  391. • OTResolveAddress returned a kOTNotSupported error if the underlying provider did not support OTGetProtAddress, instead of checking if the underlying provider supported OTResolveAddress.
  392.  
  393. • Fixed the prototypes for the t_unitrequest and t_unitreply functions in OpenTptXTI.h
  394.  
  395. • A kEFAULTErr is now returned if an asynchronous Open routine is invoked with a 0 for the OTNotifyProcPtr.
  396.  
  397. • Fixed a problem between Open Transport and VM at shutdown which could cause a crash.
  398.  
  399. • SndURequests that time out now return an ETIMEDOUT error instead of no error and no data.
  400.  
  401. • The T_ACCEPTCOMPLETE event was being sent to the wrong endpoint in the case where the accept was done on an alternate endpoint.
  402.  
  403. • ADSP now Accepts on an alternate endpoint that is bound.  In prior versions, a crash would occur shortly after the Accept.
  404.  
  405. • Fixed a problem with the OTMemset API when compiled with Metrowerks.  Using OTMemset would set a large amount of memory in this case, usually leading to a crash.
  406.  
  407. Backward-compatibility for AppleTalk
  408.  
  409. • Fixed some race conditions in the CloseSocket path that sometimes left endpoints open.  This caused AppleTalk to eventually run out of sockets for clients that were using ATP's SendRequest API (the one that opens a new socket every time).
  410.  
  411. • Fixed a crash when disconnecting ARA.
  412.  
  413. • The ZIP calls now correctly return a kNoBridgeErr if no router is present.  They used to return noErr, with no data in the reply buffer.
  414.  
  415. • In the Chooser, if we were booted with extension off, don't write PRAM.  Otherwise, the next time we reboot, AppleTalk will still be off.
  416.  
  417. • GetAppleTalkInfo.SelfSend now reflects the actual self-send flag.  It was always returning true before.
  418.  
  419. • Problems with Quickmail and  other applications that do not give System Task time while talking on the network were alleviated.
  420.  
  421. • Several problems were fixed relating to flakiness of obtaining zone lists in various applications, including the Chooser.
  422.  
  423. • AppleTalk will no longer try to open and use ADEVs that are not version 3 or later.  This caused crashes.
  424.  
  425. AppleTalk
  426.  
  427. • ADSP's Checksum option now defaults to false, as the documentation states.
  428.  
  429. • Made many improvements in the RTMP code.  AppleTalk is now much more robust in the face of "bad" routers.
  430.  
  431. • Added some new notifications (Internet access available (Router came up), Internet access lost (All routers went down), and "Bad" router).
  432.  
  433. • If AppleTalk acquired a node with no router present, and a router subsequently came up that was compatible with our node address, AppleTalk was still unable to see off the cable properly because we did not add the appropriate multicast to the Ethernet driver.
  434.  
  435. • ADSP now returns an ETIMEDOUT error for a Connect request that timed out.
  436.  
  437. • Fixed a problem with ZIP returning zone lists, where sometimes zones were missing or duplicated.
  438.  
  439. • Fixed a problem where the ATP protocol was unloading while it was still in use.
  440.  
  441. • Fixed a problem in DDP if checksums were being used, where a packet with a checksum of 0xffff was being rejected.
  442.  
  443. • Fixed the stream-head receive and send flow-control sizes so they are 16K instead of 127 bytes!
  444.  
  445. • ADSP now honors the XTI_SNDBUF, XTI_RCVBUF, XTI_SNDLOWAT, and XTI_RCVLOWAT options.
  446.  
  447. Backward-compatibility for TCP/IP
  448.  
  449. • UDP now returns the actual interface MTU instead of just the default value.
  450.  
  451. • Support for the MXInfo and HInfo calls was added.
  452.  
  453. • In some cases,  ASRs were called twice for stream termination.  This caused problems for several MacTCP applications.  This has been fixed.
  454.  
  455. • Fixed a problem where we died if no domain name was set up.
  456.  
  457. TCP/IP
  458.  
  459. • DHCP address leases are now working correctly.
  460.  
  461. • Worked around a problem with Windows NT DHCP servers where they do not conform to the relevant RFCs.
  462.  
  463. • Connect-by-name is now working again.
  464.  
  465. Links
  466.  
  467. •  Alternate links (.ENET0, .TOKN0, .FDDI0) support is now working.
  468.  
  469. • When using the I_SetFraming IOCTL, the DRVR shim module now properly returns what the current framing value is.
  470.  
  471. • If a module did a freeb or freemsg at interrupt time, and a bufcall was pending, the bufcall was dispatched at interrupt time, causing chaos. 
  472.  
  473. Changes since 1.0.5b2
  474.  
  475. General
  476.  
  477. • Updates were made to the Open Transport Developer Note and the Open Tpt Serial Developer Note.
  478.  
  479. • All of the samples are now supplied as Metrowerks projects.  Since we have not been able to get PPC SIOWs working, this was the easiest way to supply working PPC samples.  Since FAT programs are a good idea, we converted the 68K projects to Metrowerks as well.  The Metrowerks projects use the Metrowerks IDE version 1.1 from the 9/5/95 Code Warrior Gold 7.0 Update. 
  480.  
  481. • ASLM header files and libraries have been removed from the Open Transport sample builds.  They are not necessary.
  482.  
  483. • A kEFAULTErr is returned if an async open is done without a notification proc parameter.
  484.  
  485. • kOTNotSupported is returned if an attempt is made to use a transaction API on a non-transaction endpoint.
  486.  
  487. • The "cookie" to a T_REPLY event is now the endpoint that the event occurred on.  Also, T_REPLY events now act the same as all other data events (i.e. You only get 1 until you get a kOTNoDataErr or a kOTLookErr).
  488.  
  489. • Many new debugger breaks were added to the debug build to catch usage problems.
  490.  
  491. • The "0", "1", and "2" prefixes on debugger breaks have been updated to be a little more meaningful.  See the section later in this document.
  492.  
  493. • Some header file changes were made to fix problems with Metrowerks support (#pragma pointers_in_d0, and allow Metrowerks to use SingleObject, since it now supports it). 
  494.  
  495. • OTYieldPortRequest API was implemented.
  496.  
  497. • Footprint was significantly lowered if AppleTalk and TCP/IP are not being used.
  498.  
  499. • stropts.h is now supplied as a standard header file for Open Transport.  This contains many streams equates for IOCTLs and other miscellaneous stream functions.
  500.  
  501. • OTGetTimeStamp is now very fast on PowerPC machines.  Prior implementations used the microseconds trap, which is very slow.  OTGetTimeStamp is now takes on the order of 400 nano-seconds instead of 20 microseconds.
  502.  
  503. Backward-compatibility for AppleTalk
  504.  
  505. • When promoting short DDP packets to long DDP packets, set the source network number to our network number rather than 0.
  506.  
  507. • Update the internal router address variables more often.
  508.  
  509. • Support for Alternate Ethernet devices was fixed.
  510.  
  511. • Fixed a problem with the Chooser displaying zone lists, where sometimes zones were missing or duplicated.
  512.  
  513. • Added a work-around for ill-behaved applications like Quickmail which do large amounts of ATP requests without ever yielding the CPU with SystemTask or GetNextEvent. 
  514.  
  515. Backward-compatibility for TCP/IP
  516.  
  517. • Performance problems with SLIP and PPP MDEVs were alleviated somewhat.  They were caused by sending data up to the client at interrupt time, which is not allowed by Open Transport.
  518.  
  519. • Several problems were fixed with changing the TCP/IP configuration while TCP applications were running.
  520.  
  521. TCP/IP
  522.  
  523. • Permit underscores in a domain-name component
  524.  
  525. * Added interface MTU and hardware address fields to InetInterfaceInfo structure. The structure was also modified to be more expandible in the future.  It is not incompatible with Open Transport 1.0 -> 1.0.7 builds at this time.  When Open Transport 2.0 for Copland ships, applications compiled with the OpenTptInternet.h from the 1.0 -> 1.0.7 SDKs will no longer work properly if they use this structure.
  526.  
  527. • The Control Panel now supports a "Use PPP Server" configuration method so that when using a PPP connection, the correct fields are greyed out for using the PPP server's configuration information.
  528.  
  529. • TCP/IP has been modifier to work with a Windows NT DHCP server (which does not conform to the RFCs for DHCP).
  530.  
  531. • We no longer send full-size DHCP or BOOTP packets.  The packet length is set to the actual length of data in the DHCP or BOOTP request.  This helps us work with several servers.
  532.  
  533. AppleTalk
  534.  
  535. • The OPT_SERVERSTATUS option for PAP now takes a non-terminated, non-pascal string (i.e. the length of the option defines the length of the string).  In prior releases, it wanted a pascal string.
  536.  
  537. • Setting Self-Send now works exactly the way it worked under "Classic".
  538.  
  539. • Setting the OPT_SELFSEND option in DDP now works the way you would expect it to work.  The previous implementation self-sent any broadcasts sent on the OPT_SELFSEND endpoint to whatever endpoint should receive it on the local node.  The new implementation checks the destination endpoint of broadcast packets, and if OPT_SELFSEND is set, delivers the packet.
  540.  
  541. • AppleTalk now does a few more notifications for clients when things happen - "Router Up" and "Router down" notifications, as well as notification when all addresses are taken, or you've configured "fixed node" support and someone else has taken the node.  All of these dialogs will auto-dismiss in 2 minutes if the user does not press "OK".
  542.  
  543. Links
  544.  
  545. • Many changes were made to the Serial implementation.  Please read the Open Tpt Serial Developer Note, and examine the header file OpenTptSerial.h for details.
  546.  
  547.